﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Text;
using System.Windows.Forms;
using DevExpress.XtraEditors;
using QLT_BLL;
using QLT_Public;

namespace GiaoDien
{
    public partial class uc_KhachHang : DevExpress.XtraEditors.XtraUserControl
    {
        public uc_KhachHang()
        {
            InitializeComponent();
        }
        KhachHang_BLL khachhang_bll = new KhachHang_BLL();
        private void uc_KhachHang_Load(object sender, EventArgs e)
        {
            gridControl1.DataSource = khachhang_bll.LayDuLieu();
            bbi_Huy.Enabled = false;
            bbi_Luu.Enabled = false;
            txt_MaKhachHang.Enabled = false;
            txt_TenKhachHang.Enabled = false;
            txt_DiaChi.Enabled = false;

        }
        int flag;
        private void bbi_Them_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            flag = 0;
            txt_MaKhachHang.Enabled = false;
            txt_MaKhachHang.Text = "Mã tự sinh";
            bbi_Them.Enabled = false;
            bbi_Sua.Enabled = false;
            bbi_Luu.Enabled = true;
            bbi_Huy.Enabled = true;
            bbi_Xoa.Enabled = false;
            //txt_MaKhachHang.Enabled =true;
            txt_TenKhachHang.Enabled = true;
            txt_DiaChi.Enabled = true;
        }

        private void bbi_Sua_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            flag = 1;
            txt_MaKhachHang.Enabled = true;
            txt_MaKhachHang.Text = "";
            bbi_Them.Enabled = false;
            bbi_Sua.Enabled = false;
            bbi_Luu.Enabled = true;
            bbi_Huy.Enabled = true;
            bbi_Xoa.Enabled = false;
            txt_TenKhachHang.Enabled = true;
            txt_DiaChi.Enabled = true;
            gridControl1_DoubleClick(sender,e);
        }

        public void Huy_Text(Control ctr)
        {
            if (ctr is TextBox || ctr is TextEdit)
                ctr.Text = string.Empty;
            foreach (Control i in ctr.Controls)
                Huy_Text(i);
        }
        NhatKy_Bll nhatKy_bll = new NhatKy_Bll();
        private void bbi_Luu_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            NhatKy_Public nk = new NhatKy_Public();
            KhachHang_Public kh = new KhachHang_Public();
            if (flag == 0)
            {
                if (txt_TenKhachHang.Text != "" && txt_DiaChi.Text != "")
                {
                    //them
                    kh.TenKH = txt_TenKhachHang.Text;
                    kh.DiaChi = txt_DiaChi.Text;
                    khachhang_bll.insert_KhachHang(kh, kh);
                    string d = DateTime.Now.ToString();
                    Class_TrungGian tg = new Class_TrungGian();
                    nk.TaiKhoan = tg.TaiKhoan;
                    nk.NgayGio = d;
                    nk.DoiTuong = tg.DoiTuong;
                    nk.HanhDong = "Thêm Mới";
                    nk.MoTa = "Thêm mới thông tin Khách hàng: '" + txt_TenKhachHang.Text + "' có địa chỉ:'"+txt_DiaChi.Text+"'";
                    nhatKy_bll.insert_NhatKy(nk, nk, nk, nk, nk);
                    XtraMessageBox.Show("Thêm mới thành công!", "Thông Báo", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    Huy_Text(this);
                    bbi_Them.Enabled = true;
                    bbi_Sua.Enabled = true;
                    bbi_Luu.Enabled = false;
                    bbi_Huy.Enabled = false;
                    bbi_Xoa.Enabled = true;
                    uc_KhachHang_Load(sender,e);
                }
                else
                    XtraMessageBox.Show("Bạn chưa nhập đủ thông tin!","Thông Báo",MessageBoxButtons.OK,MessageBoxIcon.Information);

            }
            if (flag == 1)
            {
                if (txt_TenKhachHang.Text != "" && txt_DiaChi.Text != "" && txt_MaKhachHang.Text != "")
                {
                    try
                    {
                        //sua
                        kh.MaKH = int.Parse(txt_MaKhachHang.Text);
                        kh.TenKH = txt_TenKhachHang.Text;
                        kh.DiaChi = txt_DiaChi.Text;
                        khachhang_bll.update_KhachHang(kh, kh, kh);
                        string d = DateTime.Now.ToString();
                        Class_TrungGian tg = new Class_TrungGian();
                        nk.TaiKhoan = tg.TaiKhoan;
                        nk.NgayGio = d;
                        nk.DoiTuong = tg.DoiTuong;
                        nk.HanhDong = "Sửa";
                        nk.MoTa = "Sửa thông tin Mã Khách hàng: '" + txt_MaKhachHang.Text + "'có tên: '"+txt_TenKhachHang.Text+"'";
                        nhatKy_bll.insert_NhatKy(nk, nk, nk, nk, nk);
                        XtraMessageBox.Show("Sửa thông tin khách hàng thành công!", "Thông Báo", MessageBoxButtons.OK, MessageBoxIcon.Information);
                        Huy_Text(this);
                        bbi_Them.Enabled = true;
                        bbi_Sua.Enabled = true;
                        bbi_Luu.Enabled = false;
                        bbi_Huy.Enabled = false;
                        bbi_Xoa.Enabled = true;
                        uc_KhachHang_Load(sender, e);
                    }
                    catch (Exception)
                    {
                        XtraMessageBox.Show("Thông tin Mã khách hàn không hợp lệ!","Thông Báo",MessageBoxButtons.OK,MessageBoxIcon.Error);
                        txt_MaKhachHang.Focus();
                    }
                }
                else
                    XtraMessageBox.Show("Bạn chưa nhập đủ thông tin!","Thông Báo",MessageBoxButtons.OK,MessageBoxIcon.Information);
            } 
        }

        private void bbi_Xoa_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            try
            {
                KhachHang_Public kh = new KhachHang_Public();
                kh.MaKH = Convert.ToInt32(gridView1.GetRowCellValue(gridView1.FocusedRowHandle, "Mã Khách Hàng"));
                kh.TenKH = gridView1.GetRowCellValue(gridView1.FocusedRowHandle, "Tên Khách Hàng").ToString();
                if (XtraMessageBox.Show("Bạn có muốn xóa Khách hàng: '" + kh.TenKH + "' có Mã số: '" + kh.MaKH + "' này không?", "Thông Báo", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) == DialogResult.OK)
                {
                    NhatKy_Public nk = new NhatKy_Public();
                    string d = DateTime.Now.ToString();
                    Class_TrungGian tg = new Class_TrungGian();
                    nk.TaiKhoan = tg.TaiKhoan;
                    nk.NgayGio = d;
                    nk.DoiTuong = tg.DoiTuong;
                    nk.HanhDong = "Xóa";
                    nk.MoTa = "Xóa thông tin Thuốc: '" + kh.TenKH + "'";
                    nhatKy_bll.insert_NhatKy(nk, nk, nk, nk, nk);
                    khachhang_bll.delete_KhachHang(kh);
                    uc_KhachHang_Load(sender, e);
                }
            }
            catch (Exception)
            {
                XtraMessageBox.Show("Không thể xóa thông tin khách hàng do có ràng buộc dữ liệu!","Thông Báo",MessageBoxButtons.OK,MessageBoxIcon.Error);
            }
        }

        private void gridControl1_DoubleClick(object sender, EventArgs e)
        {
            txt_MaKhachHang.Text = gridView1.GetRowCellValue(gridView1.FocusedRowHandle, "Mã Khách Hàng").ToString();
            txt_TenKhachHang.Text = gridView1.GetRowCellValue(gridView1.FocusedRowHandle, "Tên Khách Hàng").ToString();
            txt_DiaChi.Text = gridView1.GetRowCellValue(gridView1.FocusedRowHandle, "Địa Chỉ").ToString();
        }

        private void txt_MaKhachHang_Leave(object sender, EventArgs e)
        {
            if (txt_MaKhachHang.Text == "")
                txt_MaKhachHang.Focus();
        }

        private void txt_TenKhachHang_Leave(object sender, EventArgs e)
        {
            if (txt_TenKhachHang.Text == "")
                txt_TenKhachHang.Focus();
        }

        private void txt_DiaChi_Leave(object sender, EventArgs e)
        {
            if (txt_DiaChi.Text == "")
                txt_DiaChi.Focus();
        }

        private void txt_MaKhachHang_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (!Char.IsControl(e.KeyChar) && !Char.IsDigit(e.KeyChar))
                e.Handled = true;
                
        }

        private void bbi_Huy_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            txt_MaKhachHang.Enabled = false;
            bbi_Them.Enabled = true;
            bbi_Sua.Enabled = true;
            bbi_Luu.Enabled = false;
            bbi_Huy.Enabled = false;
            bbi_Xoa.Enabled = true;
            Huy_Text(this);
        }

    }
}
